package org.springleaf.core.mvc.view;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;

/**
 * 视图工具
 * @author leaf
 */
public abstract class AbstractViewRender {
	/**
	 * 返回JSON视图
	 * @param obj 返回的数据对象,最好是能继承IJSONObject的(注意不要递归引用自身)
	 */
	public static ModelAndView renderJson(Object obj){
		return new JSONModelAndView(obj);
	}
	
	/**
	 * 返回JSON视图
	 * @param isSuccess 是否成功
	 * @param msg 信息
	 * @param result 结果数据
	 */
	public static ModelAndView renderJson(boolean isSuccess,String msg,Object result){
		return new JSONModelAndView(isSuccess, msg, result);
	}
	
	/**
	 * 返回JSON视图
	 * @param isSuccess 是否成功
	 * @param msg 信息
	 */
	public static ModelAndView renderJson(boolean isSuccess,String msg){
		return new JSONModelAndView(isSuccess, msg);
	}
	
	/**
	 * 返回客户端跳转视图
	 * @param url 地址
	 */
	public static ModelAndView redirect(String url){
		return new ModelAndView(new RedirectView(url));
	}
	
	/**
	 * 返回普通视图
	 * @param viewName 视图名
	 * @return
	 */
	public static ModelAndView render(String viewName){
		return new ModelAndView(viewName);
	}
	
	/**
	 * forward到指定页面
	 * @param url
	 * @return
	 */
	public static ModelAndView forward(String url){
		return new ModelAndView("forward:" + url);
	}
}
